package com.lakeworks.service.api;

import com.alibaba.fastjson2.JSONObject;
import com.lakeworks.common.domain.channel.*;
import com.lakeworks.common.domain.channel.ticket.TicketBeforeInfo;
import com.lakeworks.common.domain.channel.ticket.TicketChannel;
import com.lakeworks.common.domain.channel.ticket.TicketFileInfo;
import com.lakeworks.common.domain.channel.ticket.TicketSolveInfo;
import com.lakeworks.common.domain.ticket.TktClaimsRecord;
import com.lakeworks.domain.CompleteInfo;
import com.lakeworks.domain.vo.TicketBackVo;

import java.util.Map;

public interface MerchantApiService {

    /**
     * 入场单状态回写
     */
    public String backPickState(PickUpStatus pickUpStatus);

    /**
     * 回写产品信息
     */
    public String backProduct(OprProductInfo productInfo);

    /**
     * 回写产品状态
     */
    public String backProductState(ProductStatus productStatus);

    /**
     * 回写质检状态
     */
    public String backQualState(QualityResult qualityResult);

    /**
     * 回写出厂单状态
     */
    public String backShipState(ShipmentStatus shipmentStatus);


    /**
     * 回写产品格架号
     */
    public String backProductFrameNo(ProductFrame productFrame);



    /**
     * 反馈工单操作选项
     */
   public Map backTicket(TicketBackVo ticketBackVo);


    /**
     * 推送工单信息
     */
   public Map pushTicket(TicketChannel ticketChannel);


    /**
     * 联系不上
     */
   //public Map unableToContactProcessor(TicketInfo ticketInfo);


    /**
     * 工厂反馈  可以处理
     */
    public Map ftyCansolveProcessor(TicketSolveInfo ticketSolveInfo);


    /**
     * 工厂反馈 已处理好
     */
    public Map ftyHandledProcessor(TicketFileInfo ticketFileInfo);


    /**
     * 工厂反馈 处理不好
     */
    public Map ftyNohandledProcessor(TicketFileInfo ticketFileInfo);

    /**
     * 工厂反馈 上传资料
     */
    public Map uploaddataProcessor(TicketFileInfo ticketFileInfo);


    /**
     * 请求平台判断出厂单是否可以出厂
     * @return
     */
    public String isLeave(String orderNo);



    public  String getOrderInfo(String orderNo);


    public  String getOrderDetails(String orderNo);



    public  String getOrderExpress(String expressNo);

































    /**
     * 初始化具体配置
     */
    public void initialize(JSONObject config,String AK,String SK);


    Map ftyFeedback(TicketFileInfo ticketFileInfo);

    Map ftyHaveKnown(TicketFileInfo ticketFileInfo);

    Map ftyBeforeWash(TicketBeforeInfo build);

    Map ftyInconsistency(TicketFileInfo ticketFileInfo);

    Map unbleToContact(TicketFileInfo ticketFileInfo);

    Map<String,Object> ticketUpdate(TicketFileInfo ticketFileInfo);


    String reconsider(TktClaimsRecord tktClaimsRecord);


    String pushCompleteInfo(CompleteVo completeVo);


}



